#!/bin/bash
###############################################################################
# @用例ID: 20240619-162445-114663076
# @用例名称: test-clone
# @用例级别: 4
# @用例标签:
# @扩展属性:
# @用例类型: 功能测试
# @自动化: 1
# @超时时间: 0
# @用例描述: 对自研软件包的测试用例仓库进行clone
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"

    # @预置条件: 提前安装git软件包
    # @预置条件: clone待测试软件包的仓库
    assert_true yum install -y git

    return 0
}

do_test() {
    msg "this is do_test"
    msg "g_tmpdir=$g_tmpdir"
    local test_flag=0
    local pkg_list=$(realpath "$1")
    local pkg_num=$(cat $pkg_list | wc -l)
    # @测试步骤: 执行所有软件包的测试用例
    # @预期结果: 测试用例全部通过
    while read -r line; do
        if yum list $line-devel; then
            yum install -y $line $line-devel
        else
            yum install -y $line
        fi
        if git clone --recurse-submodules git@git.woa.com:tlinux/TST/package-test/$line.git; then
            test_flag=$((test_flag + 1))
            echo " $test_flag / $pkg_num : $line clone success!"
        else
            echo "$line clone fail!"
        fi
    done < $pkg_list

    assert_true [ $test_flag -eq $pkg_num ]
    
    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    #rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
